1. Field of the Invention
The present invention relates generally to operating system software architectures and, more particularly, to an operating system software architecture and methods for supporting color processing.
2. Description of Related Art
Computer systems are information-handling systems that are designed to process a wide variety of information including text and graphics. These computer systems, including their hardware and software, are becoming increasingly sophisticated so as to be able to process this information in color, but are still limited in their ability to support and process such color information. For example, one area of such limited capability of computer systems relates to interfacing with and supporting a wide variety of peripheral devices that display, print, plot or otherwise present color to a viewer under computer control. Another area is the limited ability of a computer programmer or computer user to program or process color in a "color space" of his or her choice on the computer system.
More specifically, and with respect to the one area mentioned above, several of the more prevalent color peripheral devices include displays such as computer monitors and TV screens, printers such as ink-jet, laser and photolithography printers, and plotters such as electrostatic and drum/flatbed plotters. Each of these devices may be coupled to or interface with the computer system, in which the color information that is displayed, printed or plotted is processed by the computer system's hardware, operating systems software and applications software.
At least two aspects of these color peripheral devices relate to (1) the color space in which they operate and (2) their color device-dependency. Color space is three-dimensional space in which each point in the space corresponds to a color. For example, RGB color space is a device color space in which each point is a color formed of the additive amounts of red (R), green (G) and blue (B) colorants. A color monitor or a TV screen typically operates in RGB color space in which red, green and blue colorant phosphors on the monitor or screen are combined to display a particular color. Another example is CYMK color space in which each point is a color formed of the subtractive amounts of cyan (C), magenta (M), yellow (Y) and black (K). Printers using ink normally operate in CYMK color space in which the ink colorants are combined to form a color on a hard copy medium. Other color spaces related to various color devices are well-known in the art.
Color device-dependency is associated with the fact that each device has its own "color gamut". A color gamut is the range of colors producible within the color space with a set of colorant phosphors, inks or other colorants of the given device. In other words, the color gamut of a given device constitutes a particular region of the visible colors that can be produced by the device. For example, an RGB color monitor manufactured by one manufacturer may have a different color gamut than an RGB color monitor manufactured by another manufacturer, or different models of color monitors manufactured by the same manufacturer may have different color gamuts, thereby making their producible colors "device-dependent". In addition, each device may have its own color "profile", which is a measure of how non-ideal the particular device is in actually producing a color called for within its gamut. Thus, for example, the same red tie displayed on two different color monitors may have a different color red appearance, thereby resulting in device dependency and color inaccuracies. For a more detailed explanation of color, color space, color gamuts and other color related principles described and illustrated in this specification, reference may be made, for example, to Principles of Color Technology, 2nd Edition, by Fred W. Billmeyer, Jr. and Max Saltzman, John Wiley & Sons, 1981; Color and the Computer, by H. John Durett, Academic Press, Inc., 1987; and Computer Graphics: Principles and Practice, by Foley et al., Addison-Wesley Publishing Co., Inc., 1990.
One feature of color processing in such prior computer systems relates to "color matching". A user of the computer system may want to use the printer to make a hard copy of a color image that appears on the color monitor, or may want to present a color image on the monitor of a hard copy image appearing on the printer. Since these peripheral devices operate in different color space and have different gamuts and profiles, the color of an image appearing on one device will not match the color appearing on the other device. However, the computer system will have a software operating systems architecture that will implement a color matching scheme whereby the color appearing on one of the devices will closely, if not substantially identically, be caused to match the color transferred to the other device.
Prior software operating systems architectures are limited in their color processing capability. One limitation is that the operating systems architecture may not be able to support a given peripheral device functioning in a color space for which the architecture was not designed or could not be modified to support. Also, a prior architecture may be capable of supporting and matching color of a particular peripheral device, such as a color monitor, having its own color space, gamut and profile characteristics to another peripheral device, such as a particular color printer having its own such color characteristics. Nevertheless, another limitation is that if one or more different types of color monitors and printers having color characteristics different from the above-mentioned particular color monitor and printer are coupled to the computer, and/or other types of color peripheral devices are coupled to the computer, such as a plotter or a color TV camera, the prior computer system, and specifically its operating systems architecture, will not be able to support color matching for any of these other different peripheral devices.
Furthermore, as to the other area mentioned above, computer users of the computer system may want to work in any number of color spaces of their choice different than the color spaces of the peripheral devices supported by the prior limited operating systems architecture. For example, two color spaces in addition to RGB and CYMK color spaces are known as Luv and HSL color spaces. However, the computer user working on the above-described computer systems having the limited operating systems architecture may be able to work only in the RGB color space of the monitor or the CYMK color space of the printer, and not the other color spaces.